#define _CRT_SECURE_NO_WARNINGS 1


//#include<string>
//#include<iostream>
//
//using namespace std;
//
//string solve(string s, string t)
//{
//    string str;
//    int begin1 = s.size() - 1, begin2 = t.size() - 1;
//    int next = 0, ret = 0;
//    while (begin1 >= 0 && begin2 >= 0)
//    {
//        int x1 = s[begin1] - '0';
//        int x2 = t[begin2] - '0';
//        ret = x1 + x2 + next;
//        next = ret / 10;
//        ret = ret % 10;
//        str += (ret + '0');
//        begin1--;
//        begin2--;
//    }
//    while (begin1 >= 0)
//    {
//        ret = (s[begin1] - '0') + next;
//        next = ret / 10;
//        ret = ret % 10;
//        str += (ret + '0');
//        begin1--;
//    }
//    while (begin2 >= 0)
//    {
//        ret = (t[begin2] - '0') + next;
//        next = ret / 10;
//        ret = ret % 10;
//        str += (ret + '0');
//        begin2--;
//    }
//    if (next != 0)
//    {
//        str += (next + '0');
//    }
//    reverse(str.begin(), str.end());
//    return str;
//}
//
//int main()
//{
//    string s1("114514");
//    string s2("");
//    cout << solve(s1, s2) << endl;
//
//    return 0;
//}


#include<vector>
#include<string>
#include<iostream>

using namespace std;

vector<int> Func(vector<int>& v1, vector<int>& v2)
{
    vector<int> v;
    int begin1 = v1.size() - 1, begin2 = v2.size() - 1;
    int next = 0, ret = 0;
    while (begin1 >= 0 && begin2 >= 0)
    {
        ret = v1[begin1] + v2[begin2] + next;
        next = ret / 10;
        ret = ret % 10;
        v.push_back(ret);
        begin1--;
        begin2--;
    }
    while (begin1 >= 0)
    {
        ret = v1[begin1] + next;
        next = ret / 10;
        ret = ret % 10;
        v.push_back(ret);
        begin1--;
    }
    while (begin2 >= 0)
    {
        ret = v2[begin2] + next;
        next = ret / 10;
        ret = ret % 10;
        v.push_back(ret);
        begin2--;
    }
    if (next != 0)
    {
        v.push_back(next);
    }
    reverse(v.begin(), v.end());
    return v;
}

string solve(string s, string t)
{
    string str;
    if (s.size() == 1 && s[0] == '0')
    {
        str += '0';
        return str;
    }
    if (t.size() == 1 && t[0] == '0')
    {
        str += '0';
        return str;
    }
    int Capacity = 0;
    vector<int> RetV;
    for (int i = t.size() - 1; i >= 0; i--)
    {
        vector<int> v;
        int next = 0;
        for (int j = s.size() - 1; j >= 0; j--)
        {
            int ret = (s[j] - '0') * (t[i] - '0') + next;
            next = ret / 10;
            ret = ret % 10;
            auto it = v.insert(v.begin(), ret);
        }
        if (i != t.size() - 1)
        {
            v.push_back(0);
        }
        RetV = Func(v, RetV);
    }
    str.resize(RetV.size());
    for (int i = 0; i < RetV.size(); i++)
    {
        str[i] = RetV[i] + '0';
    }
    return str;
}

int main()
{
    string s1("1");
    string s2("0");
    cout << solve(s1, s2) << endl;

    return 0;
}